package cn.sxw.ld.common.utils;


import cn.sxw.ld.module.scrolling.pojo.Scrolling;
import cn.sxw.ld.module.scrolling.service.ScrollingService;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author: SXW
 * @since: 2025年04月09日 12:17
 * @desc:
 */
public class CommonUtil {


    /**
     * 生成指定范围内的随机整数
     *
     * @param min 最小值
     * @param max 最大值
     * @return 随机整数
     */
    public static int generateRandomInt(int min, int max) {
        return (int) (Math.random() * (max - min + 1) + min);
    }

    /**
     *
     * @param num 生成个数
     * @param min 最小值
     * @param max 最大值
     * @return
     */
    public static List<Integer> getRandomInt(int num, int min, int max) {
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            list.add(generateRandomInt(min, max));
        }
        return list;
    }

    public static List<Scrolling> splitSentences(String text) {
        // 定义正则表达式，匹配句号、问号、感叹号结尾的句子
        String regex = "[。？！~]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        List<String> sentences = new ArrayList<>();
        int lastEnd = 0;

        while (matcher.find()) {
            int end = matcher.end();
            // 提取从上次结束位置到当前匹配位置的句子
            String sentence = text.substring(lastEnd, end);
            sentences.add(sentence);
            lastEnd = end;
        }

        // 处理最后一个句子
        if (lastEnd < text.length()) {
            sentences.add(text.substring(lastEnd));
        }
        ArrayList<Scrolling> list = new ArrayList<>();
        sentences.forEach(sentence -> {
            list.add(new Scrolling(null, sentence, null, 1));
        });
        return list;
    }
}
